﻿using Pay.DTO;
using Pay.TO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pay.IService
{
    public interface ITokenUserService
    {
        /// <summary>
        /// 获得Token用户信息分页列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        PagedResult<token_user_dto> GetTokenUsers(TokenUserQuery query);

        /// <summary>
        /// 修改会员是否禁用状态
        /// </summary>
        /// <param name="merchant_id"></param>
        /// <param name="isDisabled"></param>
        /// <returns></returns>
        int UpdateDisabled(long merchant_id, int isDisabled);

        /// <summary>
        /// 获得会员信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        token_user_dto_ex GetTokenUser(long id, TokenUserPageQueryEx queryPageEx);

        /// <summary>
        /// 获得当日用户邀请好友数量排行
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        PagedResult<token_user_invitation_info> GetTokenUserInvitationRanking(TokenUserInvitationQuery query);

        /// <summary>
        /// 获得当日邀请记录明细
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        List<user_invitation_his_dto> GetTokenUserInvitationHis(long userId, string begin_time, string end_time);

        /// <summary>
        /// 增加用户马力
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="horsePower"></param>
        /// <returns></returns>
        bool IncreaseUserHorsePower(long userId, int horsePower, int day, long sysUserId);

        /// <summary>
        /// 修改用户角色
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="userType"></param>
        /// <returns></returns>
        bool UpdateUserType(long userId, int userType);
        /// <summary>
        /// 微信支付升级创客
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        bool TokenUpgradeMaker(long userId);
    }
}
